Non-volatile memory devices are used in applications that require stored information to be retained even when the memory devices are not powered. Examples of non-volatile memory devices include read-only memory (ROM), magnetic computer storage devices (e.g., hard disks, floppy disk drives), optical disc drives, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory.
EEPROMs have been widely used in electronic products because of their non-volatile functions of electrically writing and erasing data. An EEPROM can be programmed and erased electrically. Flash memory is like EEPROM in that it can also be electrically erased and programmed. Flash memory stores information in an array of floating gate transistors, called “cells,” each of which traditionally stores one bit of information. Newer flash memory devices, sometimes referred to as multi-level cell devices, can store more than 1 bit per cell by using more than two levels of electrical charge placed on the floating gate of a cell.
A limitation of conventional flash memory is that although it can be read or programmed a byte or a word at a time in a random access fashion, the flash memory has to erase multiple memory locations (“blocks”) at a time. Changing a single byte is only possible by rewriting a whole block. Starting with a freshly erased block, any location within that block can be programmed. However, once a bit has been set to 0, only by erasing the entire block can it be changed back to 1. In other words, conventional flash memory offers random-access read and programming operations, but cannot offer arbitrary random-access rewrite or erase operations.
Another limitation of conventional flash memory as applied to standard complementary metal oxide semiconductor (CMOS) processes is the number of additional masking operations required to embed a flash cell and the peripheral circuitry used in generation and routing of high voltage signals.